package mytree;

import javax.swing.tree.TreeNode;

/**
 * Created by Administrator on 2017/4/27.
 */
public interface MyBinaryTree<E> {
/*//    建立二叉树（生成根结点和左右子树的二叉树）
        public void creat(E val, Mytree<E> lChild,Mytree<E> rChild);*/
//    获得左子树(获得树根结点的左子树)
        public Mytree<E> getLChild(Mytree<E> p);
//    获得右子树
        public Mytree<E> getrChild(Mytree<E> p);
//    插入结点到左子树(新结点插入到左子树)
       public void insertL(E val,Mytree<E> p);
//    插入结点到右子树
        public void insertR(E val,Mytree<E> p);
//    删除左子树(删除某个结点的左子树)
        public Mytree<E> deleteL(Mytree<E> p);
//    删除右子树
        public Mytree<E> deleteR(Mytree<E> p);
//    查找结点(查找数据元素与某个结点元素相同的结点)
        //给一个数，从二叉树中查找值为val的结点
    /*root是完整的值，val要查找的值*/
        public Mytree<E> search(Mytree<E> root,E val);
//    遍历二叉树（按某种方式遍历二叉树的全部结点）
    //因为二叉树有很多中遍历方式，i表示用那种遍历方式
    public void traverse(Mytree<E> root,int i);

}
